From: Daniel van Vugt Date: Wed, 26 Feb 2020 03:53:40 +0000 (+0800) Subject: Revert "js/ui: Use Clutter.OffscreenRedirect.ON_IDLE" X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~772^2^2~37 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=c773c8c162eba5abd8551a1718b8de40d3ab8a49;p=gnome-shell.git Revert "js/ui: Use Clutter.OffscreenRedirect.ON_IDLE" This reverts commit c0c027c608d0aa1c547a2a82bd3ce6b84bb83b83. Because for some reason animating external opacity and position is still incurring internal repaints, which disables offscreening and makes fading of overlapping actors look wrong. `ON_IDLE` should be fixed in mutter before it is used (in boxpointer at least) again. Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2270 --- diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js index 940f6aa16..03cb4a567 100644 --- a/js/ui/boxpointer.js +++ b/js/ui/boxpointer.js @@ -33,7 +33,7 @@ var BoxPointer = GObject.registerClass({ _init(arrowSide, binProperties) { super._init(); - this.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE); + this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); this._arrowSide = arrowSide; this._userArrowSide = arrowSide; diff --git a/js/ui/dash.js b/js/ui/dash.js index 928104637..6eb71e73b 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -353,7 +353,7 @@ var Dash = GObject.registerClass({ clip_to_allocation: true }); this._box._delegate = this; this._container.add_actor(this._box); - this._container.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE); + this._container.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); this._showAppsIcon = new ShowAppsIcon(); this._showAppsIcon.show(false); diff --git a/js/ui/overview.js b/js/ui/overview.js index 4b30b6f87..2e6b93da6 100644 --- a/js/ui/overview.js +++ b/js/ui/overview.js @@ -108,7 +108,7 @@ class OverviewActor extends St.BoxLayout { track_hover: true, can_focus: true, }); - this._searchEntry.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE); + this._searchEntry.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); let searchEntryBin = new St.Bin({ child: this._searchEntry, x_align: Clutter.ActorAlign.CENTER, diff --git a/js/ui/panel.js b/js/ui/panel.js index df8fe1160..ec39cebb6 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -794,7 +794,7 @@ class Panel extends St.Widget { super._init({ name: 'panel', reactive: true }); - this.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE); + this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); this._sessionStyle = null; diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index b1b080616..075fbb15b 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -1256,7 +1256,7 @@ var WindowManager = class { // while actor updates are frozen. let actorContent = Shell.util_get_content_for_window_actor(actor, oldFrameRect); let actorClone = new St.Widget({ content: actorContent }); - actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE); + actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); actorClone.set_position(oldFrameRect.x, oldFrameRect.y); actorClone.set_size(oldFrameRect.width, oldFrameRect.height); Main.uiGroup.add_actor(actorClone);